package com.hopu.controller;

import com.github.pagehelper.PageInfo;
import com.hopu.entity.MyDept;
import com.hopu.service.MyDept.MyDeptService;
import com.hopu.util.HouseResult;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.List;

/**
 * @Package: com.hopu.controller
 * @ClassName: MyDeptController
 * @Author: xiaoBao
 * @CreateTime: 2020/10/28 2:27
 * @Description: 【部门管理功能表现层】
 */
@Controller("myDeptController") /**定义表现层*/
public class MyDeptController {
    @Resource(name = "myDeptServiceImple")
    private MyDeptService myDeptService;


    /**
     * findAllDept 【查询所有的部门信息】
     * @param current 当前页
     * @param pflag 部门是否已撤销
     * @return 将分页后的部门信息返回给Ajax进行显示。
     */
    @RequestMapping("part/findAllDept.do")
    @ResponseBody
    public HouseResult<PageInfo<MyDept>> findAllDept(int current, int pflag){
        return myDeptService.findAllDept(current,pflag);
    }


    /**
     * findPart 【1、根据部门名称验证部门是否存在；2、根据点击的部门Id查询部门信息，实现修改弹窗数据回显。】
     * @param myDept 前台发送的部门名称；
     * @return 将查询结果返回给Ajax。
     */
    @RequestMapping("part/findPart.do")
    @ResponseBody
    public HouseResult<MyDept> findPart(MyDept myDept){
        return myDeptService.findPart(myDept);
    }


    /**
     * addPart 【根据名称和备注添加一条部门信息】
     * @param myDept 部门名称 备注；
     * @return 将执行添加结果返回给前台Ajax。
     */
    @RequestMapping("part/addPart.do")
    @ResponseBody
    public HouseResult<Object> addPart(MyDept myDept){
        return myDeptService.addPart(myDept);
    }


    /**
     * updatePartById 【根据Id修改一条部门信息】
     * @param myDept 部门名称、备注、Id；
     * @return 将修改的执行结果返回给前台Ajax。
     */
    @RequestMapping("part/updatePartById.do")
    @ResponseBody
    public HouseResult<Object> updatePartById(MyDept myDept){
        return myDeptService.updatePartById(myDept);
    }


    /**
     * delPart 【根据Id撤销一个部门】
     * @param myDept 部门Id；
     * @return 将撤销的执行结果返回给前台。
     */
    @RequestMapping("part/delPart.do")
    @ResponseBody
    public HouseResult<Object> delPart(MyDept myDept){
        return myDeptService.delPart(myDept);
    }


    /**
     * restorePart 【根据Id恢复一个部门】
     * @param myDept 部门Id；
     * @return 将恢复的执行结果返回给前台。
     */
    @RequestMapping("part/restorePart.do")
    @ResponseBody
    public HouseResult<Object> restorePart(MyDept myDept){
        return myDeptService.restorePart(myDept);
    }


    /**
     * findAllPartPidAndPname 【查询所有部门Id和名称（用于实现添加员工时在下拉框中显示所有部门信息）】
     * @return 将查询到的部门Id和名称返回给添加员工功能Ajax。
     */
    @RequestMapping("part/findAllPartPidAndPname.do")
    @ResponseBody
    public HouseResult<List<MyDept>> findAllPartPidAndPname(){
        return myDeptService.findAllPartPidAndPname();
    }

}
